﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Anata.Client
{
    /// <summary>
    /// Data service used by the <c>ImageLoaderViewModel</c> to obtain data
    /// </summary>
    public interface IKaryawanProvider
    {
        void LazyFetchJadwalKaryawans(int page, Action<List<KaryawanThumbnailViewModel>> callback);
        void LazyLoadJadwalKaryawan(KaryawanThumbnailViewModel ktvm, Action<KaryawanThumbnailViewModel> callback);
        void LazySaveJadwalKaryawan(KaryawanThumbnailViewModel ktvm, Action<KaryawanThumbnailViewModel> callback);
        void LazyLoadKaryawan(KaryawanViewModel kvm, Action<KaryawanViewModel> callback);
        void LazySaveKaryawan(KaryawanViewModel kvm, Action<KaryawanViewModel> callback);
        void LazyLoadKehadiranTerakhir(KaryawanViewModel tvm, Action<KaryawanViewModel> callback);
        void LazySaveKehadiranTerakhir(KaryawanViewModel tvm, Action<KaryawanViewModel> callback);
        void LazyLoadJadwalKaryawan(KaryawanViewModel kvm, Action<KaryawanViewModel> callback);
        void LazySaveJadwalKaryawan(KaryawanViewModel kvm, Action<KaryawanViewModel> callback);

        void LazyFetchKaryawans(int page, Action<List<SimpleKaryawanViewModel>> callback);
        void LazyLoadCompleteKaryawan(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazyLoadKaryawan(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazyLoadKaryawanLayanan(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazyLoadKaryawanProduk(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazyLoadKaryawanAturanLembur(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazySaveCompleteKaryawan(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazySaveKaryawan(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazySaveKaryawanLayanan(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazySaveKaryawanProduk(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
        void LazySaveKaryawanAturanLembur(ComplexKaryawanViewModel ckvm, Action<ComplexKaryawanViewModel> callback);
    }

}
